﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PUCP.SI2.SGIRP.BC;
using PUCP.SI2.SGIRP.BE;

namespace PUCP.SI2.SGIRP.GUI
{
    public partial class ContratoMenuForm : Form
    {
        public ContratoMenuForm()
        {
            InitializeComponent();              
        }

        public void refresTable()
        {
            ContratoBC objContratoBC = new ContratoBC();
          
            List<ContratoBE> contratos = objContratoBC.ContratosListar();

            fillTable(contratos);            
        }

        public void fillTable(List<ContratoBE> contratos)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("Codigo");
            dt.Columns.Add("Centro Comercial");
            dt.Columns.Add("Local");
            dt.Columns.Add("Cliente");
            dt.Columns.Add("Nombre Comercial");
            dt.Columns.Add("Fecha Inicio");
            dt.Columns.Add("Fecha Fin");
            dt.Columns.Add("Estado");

            for (int i = 0; i < contratos.Count; i++)
            {
                DataRow dr = dt.NewRow();
                dr["Codigo"] = contratos[i].Codigo;
                dr["Centro Comercial"] = contratos[i].CentroComercial.Nombre;
                dr["Local"] = contratos[i].Local.CodigoLocal;
                dr["Cliente"] = contratos[i].Cliente.RazonSocial;
                dr["Nombre Comercial"] = contratos[i].Nombrecomercial.Nombre;
                dr["Fecha Inicio"] = contratos[i].FechaInicio;
                dr["Fecha Fin"] = contratos[i].FechaFin;
                dr["Estado"] = contratos[i].EstadoContrato;
                dt.Rows.Add(dr);
            }

            dgvContratos.DataSource = dt;
        }

        private void tsbAgregar_Click(object sender, EventArgs e)
        {
            ContratoForm vContrato = new ContratoForm();
            vContrato.SetAgregarContrato();
            vContrato.ShowDialog(this);   
        }

        private void tsbEditar_Click(object sender, EventArgs e)
        {
            ContratoForm vContrato = new ContratoForm();
            vContrato.SetModificarContrato();
            vContrato.ShowDialog(this);           
        }

        private void tsbMostrar_Click(object sender, EventArgs e)
        {
            ContratoForm vContrato = new ContratoForm();
            vContrato.SetMostrarContrato();
            vContrato.ShowDialog(this);
        }

        private void ContratoMenuForm_Load(object sender, EventArgs e)
        {
            try
            {
                refresTable();
            }
            catch (Exception ex)
            {
                throw ex;
            } 
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            ContratoBC objContratoBC = new ContratoBC();

            if ((txtCodigo.Text.Equals(string.Empty)) && (txtCliente.Text.Equals(string.Empty)) && (cbEstado.SelectedText.Equals(string.Empty)))
                refresTable();
            else
            {
                List<ContratoBE> contratos = objContratoBC.ContratosBuscar(txtCliente.Text,txtCodigo.Text,cbEstado.SelectedText);
                fillTable(contratos);
            }            
        }
    }
}
